using B.S.XZYData.Api.Read.Dto.WorkOrder;
using B.S.XZYData.ErrorCode;
using MediatR;
using System;

namespace B.S.XZYData.Api.Read.Application.Command.WorkOrder
{
    /// <summary>
    /// 获取工单分页列表命令
    /// </summary>
    public class GetWorkOrderPageCommand : IRequest<ApiPageing<WorkOrderDto>>
    {
        /// <summary>
        /// 页码
        /// </summary>
        public int Index { get; set; }

        /// <summary>
        /// 页大小
        /// </summary>
        public int Size { get; set; }

        /// <summary>
        /// 工单编号（模糊查询）
        /// </summary>
        public string? WorkOrderCode { get; set; }

        /// <summary>
        /// 产品编号（模糊查询）
        /// </summary>
        public string? ProductCode { get; set; }

        /// <summary>
        /// 产品名称（模糊查询）
        /// </summary>
        public string? ProductName { get; set; }

        /// <summary>
        /// 产品规格（模糊查询）
        /// </summary>
        public string? Spec { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public string? Unit { get; set; }

        /// <summary>
        /// 实际数量
        /// </summary>
        public int? ActualQuantity { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        public string? Status { get; set; }

        /// <summary>
        /// 计划开始时间-开始
        /// </summary>
        public DateTime? PlannedStartTimeStart { get; set; }

        /// <summary>
        /// 计划开始时间-结束
        /// </summary>
        public DateTime? PlannedStartTimeEnd { get; set; }

        /// <summary>
        /// 计划结束时间-开始
        /// </summary>
        public DateTime? PlannedEndTimeStart { get; set; }

        /// <summary>
        /// 计划结束时间-结束
        /// </summary>
        public DateTime? PlannedEndTimeEnd { get; set; }

        /// <summary>
        /// 实际开始时间-开始
        /// </summary>
        public DateTime? ActualStartTimeStart { get; set; }

        /// <summary>
        /// 实际开始时间-结束
        /// </summary>
        public DateTime? ActualStartTimeEnd { get; set; }

        /// <summary>
        /// 实际结束时间-开始
        /// </summary>
        public DateTime? ActualEndTimeStart { get; set; }

        /// <summary>
        /// 实际结束时间-结束
        /// </summary>
        public DateTime? ActualEndTimeEnd { get; set; }

        /// <summary>
        /// 创建时间-开始
        /// </summary>
        public DateTime? CreateTimeStart { get; set; }

        /// <summary>
        /// 创建时间-结束
        /// </summary>
        public DateTime? CreateTimeEnd { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string? CreateBy { get; set; }
    }
}
